Вход

Просмотр полной версии : Показать блоки по очереди


Vladislav306907
26.07.2016, 11:14
Добрый день, необходимо проделать следующее:
если 4 строки:
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (2)</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (3)</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (4)</p>

Строки должны показываться по очереди с перерывом - сначала первая показалась и скрылась через секунду, потом через секунду вторая и так по кругу.

Попробовал сделать следующее:

$('.mig').each(function test(){
setTimeout(function(){$(this).fadeIn('slow')},1000 );
setTimeout(function(){$(this).fadeOut('slow')},100 0);
});
setInterval(test,2000);


Но не срабатывает =(

рони
26.07.2016, 11:24
Vladislav306907,
алгоритм
http://javascript.ru/forum/events/64177-slajjder-ne-rabotaet.html#post423250
есть ещё 100500 примеров на js и jquery
в вашем случае даже таймеры ненужны весь функционал обеспечат fadeIn и fadeOut

рони
26.07.2016, 12:27
Vladislav306907,
<!DOCTYPE html>

<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.mig {
display: none;
}

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var p = $(".mig"),
len = p.length,
indx = 0;
! function go() {
p.eq(indx).fadeIn("slow", function() {
$(this).delay(1000).fadeOut("slow", go)
});
indx = ++indx % len
}()
});
</script>
</head>

<body>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (2)</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (3)</p>
<p class="mig">Это тестовое сообщение, сейчас будет твориться чудо (4)</p>



</body>
</html>

Vladislav306907
26.07.2016, 14:57
Спасибо большое, delay из головы вылетел совсем